// leetcode 第3题 无重复字符的最长子串 
/**
 * @param {string} s
 * @return {number}
 */
let s = 'aabbcfva'
 var lengthOfLongestSubstring = function(s) {
    var res = 0; // 用于存放当前最长无重复子串的长度
    var str = ""; // 用于存放无重复子串
    var len = s.length;
    for(var i = 0; i < len; i++) {
      var char = s.charAt(i); // charAt(i) 用于返回指定位置的字符， i 是字符在字符串中的下标 只能返回长度为1的字符
      var index = str.indexOf(char); // 返回指定的字符串值在字符串中首次出现的位置  如果要检索的字符串值没有出现，则该方法返回 -1。
      if(index === -1) {
        str += char;
        res = res < str.length ? str.length : res;
      } else {
        str = str.substr(index + 1) + char;
      }
    }
    return res; 
};
console.log( lengthOfLongestSubstring(s) )
